Compositional Proofs of Concurrent Programs
نویسنده
چکیده
Project GR/M75440/01, funded by the Engineering and Physical Sciences Research Council (EPSRC), was undertaken to provide a better understanding of compositional reasoning, that is, how to verify systems built from components. It is a continuation of project GR/K57381, Mechanising Temporal Reasoning. A fundamental issue is the representation of program states. The choices are between stronglyand weakly-typed representations and between formalizing a single, universal state representation or giving each component an individual state representation. Sidi Ehmety and I have investigated two strongly-typed approaches: local, polymorphic records [6] and abstract states [4]. We have produced a weakly-typed proof environment for UNITY based on ZF set theory and used it to formalize most of the proofs in Charpentier and Chandy [1]. We have formalized other compositional theories, such as existential and universal properties [2, 3]. Our findings here are positive: the proofs for both papers are simple. In one case five pages of informal proofs are reduced to a few lines of Isabelle/HOL proof script [5]. We have mechanized another theory of compositional reasoning: the progress sets of Meier and Sanders. A critical evaluation of the theories we investigated is now available [7]. UNITY’s simplicity makes it ideal for the fundamental research undertaken here. UNITY proofs are traditionally carried out on paper, and a continuing theme of this research is the surprises that occur when these proofs are attempted using computer assistance. Although UNITY is too simple to apply to large-scale industrial verification, this is our ultimate aim. Large concurrent systems can only be verified with machine assistance. Formal methods researchers are divided between those who perform proofs on paper and those who advocate computer-based verification tools. Many of the people in the first group wish to use tools, provided their traditional proof style is respected. Part of the tool builder’s job is to understand which aspects of their proof style are essential. Some of the obstacles to mechanization originate in the conventions, notations and implicit assumptions of the pencil-and-paper community. This project has investigated most of the proposals for compositional reasoning in the UNITY literature. It has shown that while temporal reasoning about program components remains difficult, compositional reasoning is not as hard as was previously thought.
منابع مشابه
A Formalization of Assumptions and Guarantees for Compositional Noninterference
Research in information-flow security aims at developing methods to identify undesired information leaks within programs from private (high) sources to public (low) sinks. For a concurrent system, it is desirable to have compositional analysis methods that allow for analyzing each thread independently and that nevertheless guarantee that the parallel composition of successfully analyzed threads...
متن کاملA New Notion of Compositionality for Concurrent Program Proofs (Invited Talk)
This paper presents a high level overview of Proof Spaces [11] as an instance of a new approach to compositional verification of concurrent programs and discusses potential future work extending the approach beyond its current scope of applicability. 1998 ACM Subject Classification D.2.4 Software/Program Verification
متن کاملVerifying concurrent systems with symbolic execution: temporal reasoning is symbolic execution with a little induction
Symbolic execution is an intuitive strategy to verify sequential programs, which can be automated to a large extent. We have successfully carried over this method of proof to the interactive verification of concurrent systems. The resulting strategy can be applied to the verification of complex parallel programs and arbitrary (linear) temporal formulas. Our underlying logic is defined such that...
متن کاملPer-Thread Compositional Compilation for Confidentiality-Preserving Concurrent Programs
Recent work has demonstrated that per-thread compositional verification of value-dependent noninterference is feasible for concurrent programs: Murray et al. [9] presented a type system that, when applied individually to each of the threads of a concurrent program, can be used to establish that the entire program does not at any time leak high-classified data to any presently low-classified, re...
متن کاملA Dependent Security Type System for Concurrent Imperative Programs
The paper “Compositional Verification and Refinement of Concurrent Value-Dependent Noninterference” by Murray et. al. [MSPR16] presents a dependent security type system for compositionally verifying a value-dependent noninterference property, defined in [Mur15], for concurrent programs. This development formalises that security definition, the type system and its soundness proof, and demonstrat...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999